一個正常的物件:Person p = new person();
這是一個單一物件的結構
●Shallow copy:
1.每當我們使用clone()方法時,我們都會獲得 object 的淺拷貝,這意味著它會創建新實例並將object的所有字段複製到該新實例並將其作為object類型返回,我們需要將其顯式轉換回原始object。這是object的淺拷貝。
2. object類的clone()方法支持object的淺拷貝。如果object在淺拷貝中包含原始以及非原始或引用類型變量,則clone object還引用原始object所引用的同一object,因為僅複製object引用而不是引用object本身。
將上一個物件傳到目前物件的建構子!
有二個參考點(References)指到同一份資料
●Deep copy:
1.每當我們需要自己的副本而不使用 default implementation時,我們稱之為深拷貝,每當我們需要object的深拷貝時,我們需要 implement according to our need。
2.所以對於深拷貝,我們需要確保所有的 member class也實現了Cloneable nterface並覆蓋了object類的clone()方法。
二個完全獨立的物件